package br.edu.universo.si.projeto2.infojob.server.persistencia;

import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.HashMap;

import br.edu.universo.si.projeto2.infojob.client.bean.BeanEstadoCivil;
import br.edu.universo.si.projeto2.infojob.server.Database;

/**
 * Classe de persistência de Estado Civil.
 * @author Andrey A. de Oliveira
 */
public class PEstadoCivil
{

	/**
	 * Busca todos os estados civis cadastrados.
	 * @author Andrey A. de Oliveira
	 * @return HashMap<Integer, String>
	 * @throws ClassNotFoundException
	 * @throws SQLException
	 */
	public static HashMap<Integer, String> getEstadosCivis() throws ClassNotFoundException, SQLException
	{
		HashMap<Integer, String> estadosCivis = new HashMap<Integer, String>();

		Database database = Database.getInstance();
		Statement stmt = database.getStatement();

		String query = "SELECT * FROM infojob.tb_estado_civil;";

		ResultSet rs = stmt.executeQuery(query);

		while (rs.next())
		{
			int id = rs.getInt("id");
			String estadoCivil = rs.getString("estado_civil");

			estadosCivis.put(id, estadoCivil);
		}

		return estadosCivis;		
	}

	/**
	 * Busca um Estado Civil pelo ID. 
	 * @author Andrey A. de Oliveira
	 * @param idEstadoCivil
	 * @return BeanEstadoCivil
	 * @throws ClassNotFoundException
	 * @throws SQLException
	 */
	public static BeanEstadoCivil getEstadoCivilById(Integer idEstadoCivil) throws ClassNotFoundException, SQLException
	{
		Database database = Database.getInstance();

		PreparedStatement pStmt = database.getPreparedStatement("SELECT * FROM infojob.tb_estado_civil WHERE id = ?; ");
		pStmt.setInt(1, idEstadoCivil);

		ResultSet rs = pStmt.executeQuery();

		if (rs.next())
		{
			BeanEstadoCivil bEstadoCivil = new BeanEstadoCivil();

			bEstadoCivil.setId(rs.getInt("id"));
			bEstadoCivil.setEstadoCivil(rs.getString("estado_civil"));

			return bEstadoCivil;

		}

		return null;
	}
}